package com.itheima.mapper;

import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 纯注解开发
 */
public interface UserMapper {
    /**
     * @TODO 1.在以下接口方法上完成查询所有用户sql语句
     */
    @Select("select * from tb_user")
    List<User> selectAll();

    /**
     * @TODO 2.在以下接口方法上完成根据主键查询用户sql语句
     */
    @Select("select * from tb_user where id=#{id}")
    User selectById(int id);

    /**
     * @TODO 3.在以下接口方法上完成根据用户名和密码查询用户sql语句，完善方法参数书写！！！
     */
    @Select("select * from tb_user where username=#{username} and password=#{password}")
    User selectByCondition(@Param("username") String username, @Param("password") String password);

    /**
     * @TODO 4.测试以下接口方法定义是否正确？
     * 回答：是不行的，底层会使用接口调用方法绑定具体的sql语句，故而方法名不能相同
     */
    @Select("select * from user where name=#{username}")
    public User selectByCondition1(String name);
}
